草庐IT

scrapy -- CrawlSpider类

全部标签

python - 通过 lambda 回调在 Scrapy 蜘蛛内部传递参数

你好,我有这个简短的爬虫代码:classTestSpider(CrawlSpider):name="test"allowed_domains=["google.com","yahoo.com"]start_urls=["http://google.com"]defparse2(self,response,i):print"page2,i:",i#traceback.print_stack()defparse(self,response):foriinrange(5):print"page1i:",ilink="http://www.google.com/search?q="+str(i

python - 写入 csv 文件 scrapy

我想在scrapy中写入csv文件forrssinrsslinks:item=AppleItem()item['reference_link']=response.urlbase_url=get_base_url(response)item['rss_link']=urljoin_rfc(base_url,rss)#item['rss_link']=rssitems.append(item)#items.append("\n")f=open(filename,'a+')#filenameisapple.com.csvforiteminitems:f.write("%s\n"%item)

javascript - 如何绕过 Scrapy 中的 cloudflare bot/ddos 保护?

我曾经偶尔抓取电子商务网页以获取产品价格信息。我已经有一段时间没有使用使用Scrapy构建的爬虫了,昨天我尝试使用它-我遇到了机器人保护问题。它使用CloudFlare的DDOS保护,它基本上使用JavaScript评估来过滤掉禁用JS的浏览器(因此也包括爬虫)。评估函数后,将生成具有计算数字的响应。作为返回,服务发回附加到每个请求的两个身份验证cookie,允许正常抓取站点。Here是对其工作原理的描述。我还找到了一个cloudflare-scrape使用外部JS评估引擎计算数量并将请求发送回服务器的Python模块。我不确定如何将它集成到Scrapy中尽管。或者也许有不使用JS执行

python - Scrapy .css 选择具有特定属性名称和值的元素

如何使用Scrapy来选择具有特定属性名称和值的元素的文本?例如,Montreal我尝试了以下但收到了Noneresponse.css('.span[property="city"]::text').extract_first() 最佳答案 你犯了一个小错误。您需要在'span'之前删除'.':In[6]:response.css('span[property="city"]::text').extract_first()Out[6]:u'Montreal' 关于python-Scrap

python - Scrapy:动态定义项目

当我开始学习scrapy时,我遇到了动态构建Item属性的需求。我只是在抓取一个具有表格结构的网页,我想在抓取时形成项目和字段属性。我已经完成了这个例子Scrapingdatawithouthavingtoexplicitlydefineeachfieldtobescraped但不能做太多。我是否应该编写项目流水线来动态捕获信息。我也看过Itemloader函数,但如果有人能详细解释,那将非常有帮助。 最佳答案 只需使用单个字段作为任意数据占位符。然后,当您想要取出数据时,不是说forfieldinitem,而是说forfieldi

python - scrapy 从脚本运行蜘蛛

我想从脚本而不是scrapcrawl运行我的蜘蛛我找到了这个页面http://doc.scrapy.org/en/latest/topics/practices.html但实际上它并没有说明该脚本放在哪里。有什么帮助吗? 最佳答案 简单明了:)只需检查officialdocumentation.我会做一点改变,这样你就可以控制蜘蛛只在你执行pythonmyscript.py时运行,而不是每次你只从它导入时运行。只需添加一个if__name__=="__main__":importscrapyfromscrapy.crawlerimp

离线(本地)数据的 Python Scrapy

我的电脑上有一个270MB的数据集(10000个html文件)。我可以使用Scrapy在本地爬取这个数据集吗?怎么办? 最佳答案 简单的HTTP服务器托管如果你真的想在本地托管它并使用scrapy,你可以通过导航到它存储的目录并运行SimpleHTTPServer(如下所示的端口8000)来提供它:python-mSimpleHTTPServer8000然后只需将scrapy指向127.0.0.1:8000$scrapycrawl127.0.0.1:8000文件://另一种方法是让scrapy直接指向文件集:$scrapycrawl

python - 使用项目字段中的内容重命名 Scrapy 0.24 中下载的图像,同时避免文件名冲突?

我正在尝试重命名我的Scrapy0.24蜘蛛下载的图像。现在,下载的图像以其URL的SHA1哈希作为文件名存储。我想将它们命名为我用item['model']提取的值。Thisquestionfrom2011outlineswhatIwant,但答案是针对以前版本的Scrapy的,不适用于最新版本。一旦我设法使这项工作正常进行,我还需要确保我考虑到使用相同文件名下载的不同图像。因此,我需要将每张图片下载到其自己唯一命名的文件夹中,大概是基于原始URL。这是我在管道中使用的代码的副本。Igotthiscodefromamorerecentanswer在上面的链接中,但它对我不起作用。没有

python - Scrapy 与 Nutch

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭4年前。Improvethisquestion我计划在我目前正在开发的应用程序中使用网络爬虫。我对Nutch进行了一些研究,并使用它进行了一些初步测试。但后来我遇到了scrapy。但是当我做了一些初步研究并浏览了有关scrapy的文档时,我发现它只能捕获结构化数据(您必须提供要从中捕获数据的div名称)。我正在开发的应用程序的后端是基于Python的,我知道scrapy是基于Python的,有些人认为scrapy比Nutch更好。我的要求是从超过10

python - 接口(interface)错误 : connection already closed (using django + celery + Scrapy)

我在Celery任务中使用Scrapy解析函数(有时可能需要10分钟)时得到这个。我使用:-Django==1.6.5-django-celery==3.1.16-celery==3.1.16-psycopg2==2.5.5(我也用过psycopg2==2.5.4)[2015-07-1911:27:49,488:CRITICAL/MainProcess]Taskmyapp.parse_items[63fc40eb-c0d6-46f4-a64e-acce8301d29a]INTERNALERROR:InterfaceError('connectionalreadyclosed',)Tra